package com.qf.day08;

import com.qf.day04.arr.ArrUtils;
import com.qf.day06.Dog;
import com.qf.day06.ZangAo;

import java.util.Arrays;

/**
 * 接口的引例子
 * 数组的排序，如果数组中的元素是对象，能否进行排序
 * String类型的对象，可以直接由    Arrays.sort(arr2)进行排序 ，排序的规则是，按照字母表的顺序进行排序
 *
 * 自定义的类型的对象的数组，能否使用 Arrays.sort(Object[] arr)进行排序
 *
 */
public class Demo01 {

    public static void main(String[] args) {

//        int[] arr = {4,3,5,1,2};
//        // 排序
//        Arrays.sort(arr);
//
//        System.out.println(arr);
//        ArrUtils.printIntArr(arr);
//
//        // 如果数组中的元素是引用类型的，能否使用上面的方法排序
//        String[] arr2 = {"luffy","lisi","ami","jack"};
//        Arrays.sort(arr2);
//        ArrUtils.printStringArr(arr2);

//        Dog[] dogs = new Dog[3];
//        Dog dog01 = new Dog("旺财", "哈士奇", "男", 5, "旺");
//        Dog dog02 = new Dog("小黄", "牧羊犬", "男", 3, "ao");
//        Dog dog03 = new Dog("小黑", "藏獒", "男", 2, "aoao");
//        dogs[0] = dog01;
//        dogs[1] = dog02;
//        dogs[2] = dog03;
//
//        for (int i = 0; i < dogs.length; i++) {
//            System.out.println(dogs[i]);
//        }
//
//        // 通过实现Comparable接口，指定了dog对象的比较逻辑，是按照年龄进行比较的
//        Arrays.sort(dogs);
//
//        for (int i = 0; i < dogs.length; i++) {
//            System.out.println(dogs[i]);
//        }

        // 能不能对ZangAO的数组进行排序呢？
        ZangAo[] zangAos = new ZangAo[3];
        ZangAo dog01 = new ZangAo("luffysdfsdfsdfs", "哈士奇", "男", 5, "旺");
        ZangAo dog02 = new ZangAo("lisi", "牧羊犬", "男", 5, "ao");
        ZangAo dog03 = new ZangAo("amialalala", "藏獒", "男", 1, "aoao");
        zangAos[0] = dog01;
        zangAos[1] = dog02;
        zangAos[2] = dog03;
        for (int i = 0; i < zangAos.length; i++) {
            System.out.println(zangAos[i]);
        }

        // 如果ZangAO不想按照年龄进行排序，按照名字进行排序，如何处理呢？
        Arrays.sort(zangAos);

        System.out.println("=========================");

        for (int i = 0; i < zangAos.length; i++) {
            System.out.println(zangAos[i]);
        }

    }

}
